1. Field of the Invention
The present invention generally relates to the generation of user-interface representations across multiple platforms. Specifically, a graphic user interface presentation developed for a specific device or platform and a specific application is converted into an abstract presentation allowing a designer to immediately get a sense of the layout in terms of size and position of the user-interface entities. Device-specific emulators are eliminated by linking a device-independent model to device-dependent multiple views for either a single device or multiple devices for simultaneous, consistent, and synchronized stylized rendering on a commonly available viewing device such as a personal computer display device.
2. Description of the Related Art
With the growing proliferation of mobile computing devices, development of technology to support applications for these devices has been increasingly important. Of particular importance in the future will be technology that supports application development for deployment on multiple devices, including mobile phones and personal digital assistants (PDAs).
However, a problem when developing software intended for multi-device deployment is previewing the user-interface, particularly on devices that have graphical user-interfaces (GUIs). Each device has different interface characteristics, including display size, resolution, and user-interface widget characteristics. Some of these, such as display size, are inherent characteristics of the device. Others are a function of the user-interface toolkit or GUI toolkit employed. Some devices provide support for multiple toolkits. For purposes of the present application, the term xe2x80x9cdevicexe2x80x9d, meaning typically one of potentially many devices, on which a user interface is to be deployed, is referred to as a xe2x80x9ctarget devicexe2x80x9d.
Currently, a software developer or designer has several options when building software intended for multi-device deployment. A first option is to actually run the software on each of the target devices. This requires downloading executable code to each device and viewing its operation in situ. This can be time-consuming and requires that the developer have access to each of the target devices. Access becomes increasingly difficult as the types of devices available proliferates.
A second option is to run emulators. This obviates the necessity of having a separate physical unit for each type of device to be tested. An emulator gives an accurate rendering of the interface on a different device, for example, displaying on a desktop PC emulator what one would see on a particular model of mobile phone. It also typically provides a simulation of interaction with that device, using whatever input modes are available on the host device, meaning whatever input modes are available on the device running the emulation. Thus, a mobile phone emulator might simulate the pressing of keypad buttons using soft buttons activated by a xe2x80x9cpoint and clickxe2x80x9d mouse.
However, while emulation eliminates the need for a separate testing device for each hardware platform to be supported, there are still problems with this approach. For example, software emulators are not always available. Even when emulators can be obtained, running a number of emulators can be unwieldy and cumbersome. Each emulator runs as a stand-alone program. Each must be initialized, loaded with the code to be tested, and viewed separately. Although this might be reasonable for final xe2x80x9cproductionxe2x80x9d code, code under development typically requires that changes/updates be viewed frequently. Finally, each emulator is typically a separate program, which must be obtained, learned, and managed. Dealing with a large suite of emulators when developing multi-platform software can be quite burdensome.
In view of the foregoing and other problems, disadvantages, and drawbacks of the conventional methods, the present invention provides a method (and system) for previewing user-interfaces on multiple platforms. In the following discussion, the term xe2x80x9csimultaneousxe2x80x9d means the display representation at the same time on a display device of an application as used on multiple devices. The term xe2x80x9cconsistentxe2x80x9d means that all the display representations provide a uniform appearance. The term xe2x80x9csynchronizedxe2x80x9d means that any changes to the device-independent specification will reflect in all views simultaneously. The term xe2x80x9cdisplay representationxe2x80x9d means a stylized rendering of an application interface.
Therefore, it is an object of the present invention to provide a method for simultaneously previewing user-interfaces on multiple platforms with a consistent stylized rendering of application interfaces.
It is also an object of the present invention to provide a method in which the stylized rendering is synchronized so that any changes to a device-independent specification will simultaneously reflect in all views.
It is also an object of the present invention to provide a method in which a graphic user interface presentation developed for a specific device or platform and a specific application is converted into an abstract presentation allowing a designer to immediately get a sense of the layout in terms of size and position of the user-interface entities.
It is also an object of the present invention to provide a method whereby device-specific emulators are eliminated by providing a device-independent model linked to device-dependent multiple views for either a single device or for multiple devices for simultaneous, consistent, and synchronized viewing on a commonly used viewing device such as a personal computer.
It is also an object of the present invention to eliminate the need to download/run separate emulators for each target platform.
It is also an object of the present invention to provide a method and apparatus whereby all views of a target device user interface could be viewed at the same time.
It is also an object of the present invention to provide a method and apparatus whereby all views of a single target device or of multiple target devices are consistent.
It is also an object of the present invention to provide a method and apparatus whereby it is easy to preview new devices, even if emulators are not available.
It is also an object of the present invention to provide a development tool for use in multi-platform development and environments, for use in development of new devices, and for use in integrated software development environments.
It is also an object of the present invention to provide a stand-alone multi-platform previewer.
In order to attain the objects suggested above, there is provided, according to one aspect of the invention a method, system, and apparatus for emulating on a single display platform an application""s user interface as it would appear on each of a number of target devices, given a set of device characteristics for any device to be emulated and a formal description of one or more applications to be emulated. The method includes combining a selected one or more of the device characteristics and a selected one of the application formal descriptions and providing a simultaneous and consistent display representation for the selected application, thereby providing a stylized rendering of the selected application""s interface in a uniform appearance and in which the selected application""s interface for a plurality of the target devices can be simultaneously viewed.
According to a second aspect of the invention, there is disclosed a signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to emulate on a single display an application""s user interface as it would appear on each of a number of target devices, given a set of device characteristics for any device to be emulated and a formal description of one or more applications to be emulated. The set of instructions includes a layout generator for combining a selected one or more of the device characteristics and a selected one of the application formal descriptions and a layout manager for providing a simultaneous and consistent display representation for the selected application.
With the invention, a graphic user interface for an application can be viewed on a display device in a simultaneous, consistent, and synchronized stylized rendering as a representation of the display on any number of target display devices.